/* The file is saved in UTF-8 codepage.
 * Check: «Stereotype», Section mark-§, Copyright-©, Alpha-α, Beta-β, Smile-☺
 */
package cz.pecinovsky.english.lootp.záloha_do_budoucna;

/*******************************************************************************
 *<pre>
 * Předchozí:   Není - toto_je_nově_definovaná_třída
 *              Ttt v projektu Ppp
 * Následující: Prozatím není
 *
 * Projekt  Ppp
 *   + Přidáno
 *   - Odebráno
 *   ~ Změněno
 *</pre>
 */


////////////////////////////////////////////////////////////////////////////////
//%%+  +++++ End of ignored starting test - place for imports +++++


/*******************************************************************************
 * Instance třídy <b><code>Pozice</code><b> slouží jako přepravka
 * pro uchování informací o časování trafficLightů na křižovatkách.
 *
 * @author Rudolf PECINOVSKÝ
 * @version 6.03.2017 — 2010-11-08
 */
public class Časování
{
//== CONSTANT CLASS ATTRIBUTES =================================================

    /** Rychlé časování  úplného cyklu trafficLightu. */
    public final static Časování CYKLUS = new Časování(400, 600, 300, 700, 0);

    /** Časování pro blikající oranžové light. */
    public final static Časování BLIKEJ = new Časování(500, 0, 0, 0, 500);


//== VARIABLE CLASS ATTRIBUTES =================================================
//== CONSTANT INSTANCE ATTRIBUTES ==============================================

    /** Doba, po níž bude nastaven state Pozor.    */ public final int attention;
    /** Doba, po níž bude nastaven state Stop.     */ public final int stop;
    /** Doba, po níž bude nastaven state Připravit.*/ public final int getReady;
    /** Doba, po níž bude nastaven state Volno.    */ public final int go;
    /** Doba, po níž bude nastaven state Zhasni.   */ public final int zhasni;


//== VARIABLE INSTANCE ATTRIBUTES ==============================================
//== NESOUKROMÉ METODY TŘÍDY ===================================================

//##############################################################################
//== CONSTUCTORS AND FACTORY METHODS ===========================================

    /***************************************************************************
     * Vytvoří přepravku se zadanými dobami trvání stavů trafficLightu.
     *
     * @param attention     Doba, po níž bude svítit samotná oranžová
     * @param stop      Doba, po níž bude svítit samotná redLight
     * @param getReady Doba, po níž bude svítit redLight s oranžovou
     * @param go     Doba, po níž bude svítit samotná greenLight
     * @param zhasni    Doba, po níž nebude svítit žádné light
     */
    public Časování(int attention, int stop, int getReady, int go, int zhasni)
    {
        this.attention     = attention;
        this.stop      = stop;
        this.getReady = getReady;
        this.go     = go;
        this.zhasni    = zhasni;
   }


//== ABSTRACT METHODS ==========================================================
//== NESOUKROMÉ  METODY INSTANCÍ ===============================================

    /***************************************************************************
     * Vrátí celkovou dobu cyklu při daném časování.
     *
     * @param return Celková doba cyklu
     */
    public int dobaCyklu()
    {
        return attention + stop + getReady + go + zhasni;
    }


//== PRIVATE AND AUXILIARY CLASS METHODS =======================================
//== PRIVATE AND AUXILIARY INSTANCE METHODS ====================================
//== VNOŘENÉ A VNITŘNÍ TŘÍDY ===================================================
//== TESTY =====================================================================
//
//    /***************************************************************************
//     *
//     */
//    public static void test() {
//        new Časování();
//    }
//    public static void main(String... args) { test(); }
}
